<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>2.监视属性_基本使用</title>
		<style>
			img{
				width: 100px;
			}
		</style>
		<!-- 引入Vue -->
		<script type="text/javascript" src="../js/vue.js"></script>
	</head>
	<body>
		<!-- 准备好一个容器-->
		<div id="demo">
			<h2>今天天气很{{text}}</h2>
			<img :src="url"> <br>
			<button @click="changeWeather">切换天气</button>
		</div>

		<script type="text/javascript">
			//阻止 vue 在启动时生成生产提示。
			Vue.config.productionTip = false
			
			new Vue({
				el:'#demo',
				data:{
					isHot:true, //天气是否炎热
					url:'http://101.42.90.214/images/hot.jpg'
				},
				computed:{
					text(){
						return this.isHot ? '炎热' : '凉爽'
					}
				},
				methods:{
					changeWeather(){
						this.isHot = !this.isHot
					}
				},
				watch:{
					//监视isHot —— 监视的是data中的属性
					//#region 
					/* isHot:{
						//handler函数何时执行？ —— isHot的值发生变化的时候
						//handler函数中的this是谁？ —— vm
						handler(newValue,oldValue){
							if(newValue) {
								this.url = 'http://101.42.90.214/images/hot.jpg'
							}
							else {
								this.url = 'http://101.42.90.214/images/cool.jpg'
							}
						}
					}, */
					//#endregion
					
					//监视text —— 监视的是computed中的计算属性
					text:{
						handler(value){
							if(value === '炎热'){
								this.url = 'http://101.42.90.214/images/hot.jpg'
							}else{
								this.url = 'http://101.42.90.214/images/cool.jpg'
							}
						}
					}
				}
			})
		</script>
	</body>
</html>